package com.marvels.financial.loan.service;
import java.math.BigDecimal;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.marvels.common.dto.MarvelsResultDTO;
import com.marvels.common.dto.UserDTO;
import com.marvels.common.exception.MarvelsBusinessException;
import com.marvels.financial.loan.dto.LoanAuditConditionDto;

public interface LoanAuditApi {
	
	/**
	 * 处于申请状态的放款清单查询
	 * @param listQueryConditionDto
	 * @return
	 */
	public MarvelsResultDTO applyingList(LoanAuditConditionDto loanAuditConditionDto) throws MarvelsBusinessException;
	

	
	
	/**
	 * 放款逻辑处理
	 * @param listQueryConditionDto
	 * @return
	 */
	public MarvelsResultDTO executeApplyAudist(LoanAuditConditionDto loanAuditConditionDto) throws MarvelsBusinessException;
	
	
	/**
	 * 放款金额调整
	 * @param loanAuditConditionDto
	 * @throws MarvelsBusinessException
	 */
	public void loanAmountAdjust(LoanAuditConditionDto loanAuditConditionDto) throws MarvelsBusinessException;
	
	
	/**
	 * 下载放款申请数据
	 * @param listQueryConditionDto
	 * @return
	 */
	public HSSFWorkbook downLoadXsl(LoanAuditConditionDto loanAuditConditionDto) throws MarvelsBusinessException;
	
	
	
	/**
	 * 操作放款日志信息
	 * @param loanId
	 * @param status
	 * @param originalStatus
	 * @param processPhase
	 * @param user
	 * @return
	 */
	public boolean auditCommonDeal(String loanId,String status,String originalStatus,String processPhase,UserDTO user);
	
	
	
	/**
	 * 判断资金源限额
	 * @param loanAmount
	 * @param fundCode
	 * @return
	 * @throws MarvelsBusinessException
	 */
	public boolean judgeLoanLimit(BigDecimal loanAmount,String fundCode) throws MarvelsBusinessException;
}
